package org.dromara.system.service;

import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.bo.SysFaultFeedbackAuditBo;
import org.dromara.system.domain.bo.SysFaultFeedbackBo;
import org.dromara.system.domain.bo.SysFaultFeedbackQueryBo;
import org.dromara.system.domain.vo.SysFaultFeedbackVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 故障反馈Service接口
 *
 * @author system
 * @date 2025-10-10
 */
public interface ISysFaultFeedbackService {

    /**
     * 提交故障反馈（用户端）
     *
     * @param bo    反馈信息
     * @param files 图片文件（最多3张）
     * @return 反馈详情
     */
    SysFaultFeedbackVo submitFeedback(SysFaultFeedbackBo bo, MultipartFile[] files);

    /**
     * 分页查询反馈列表
     *
     * @param queryBo   查询条件
     * @param pageQuery 分页参数
     * @return 分页结果
     */
    TableDataInfo<SysFaultFeedbackVo> queryPageList(SysFaultFeedbackQueryBo queryBo, PageQuery pageQuery);

    /**
     * 查询反馈列表（不分页）
     *
     * @param queryBo 查询条件
     * @return 反馈列表
     */
    List<SysFaultFeedbackVo> queryList(SysFaultFeedbackQueryBo queryBo);

    /**
     * 查询反馈详情
     *
     * @param feedbackId 反馈ID
     * @return 反馈详情
     */
    SysFaultFeedbackVo queryById(Long feedbackId);

    /**
     * 审核反馈（管理端）
     *
     * @param auditBo 审核信息
     * @return 是否成功
     */
    Boolean auditFeedback(SysFaultFeedbackAuditBo auditBo);

}

